﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dacli.modelos.dao
{
    public class ResultadosCategoriasDAO : EntidadDao
    {
        public ResultadosCategorias resultadosCategorias;
        public ResultadosCategoriasDAO()
            : base("resultados_categorias")
        {
            
        }

        public ResultadosCategorias asignarId(long id)
        {
            this.consultar("id=" + id);
            return this.resultadosCategorias;
        }

        public override long incluir()
        {
            string sql = "INSERT INTO " + this.tabla + " (pedidos_id, examenes_id, elementos_categoria_id, resultado) values" +
                        "(" + resultadosCategorias.pedidos.id +","+ resultadosCategorias.examenes.id + "," +
                        resultadosCategorias.elementosCategoria.id+ ",'" + resultadosCategorias.resultado +"')";
            return conexion.ejecutar(sql);
        }

        public override long modificar()
        {
            string sql = "UPDATE  " + this.tabla + " SET resultado ='" + resultadosCategorias.resultado +"' WHERE " +
                        "pedidos_id =" + resultadosCategorias.pedidos.id + " AND examenes_id=" + resultadosCategorias.examenes.id + 
                        " AND elementos_categoria_id =" + resultadosCategorias.elementosCategoria.id + "";
            return conexion.ejecutar(sql);
        }

        public override long eliminar()
        {
            throw new NotImplementedException();
        }

        public override bool consultar(string filtro)
        {
            modelos.dao.PedidosDAO pedidosDao = new PedidosDAO();
            modelos.dao.ExamenesDAO examenesDao = new ExamenesDAO();
            modelos.dao.ElementosCategoriaDAO elementosCategoriaDao = new ElementosCategoriaDAO();
            string sql = "SELECT * FROM " + this.tabla + " WHERE "+ filtro;
            System.Data.SqlClient.SqlDataReader reader = conexion.consultar(sql);
            if (reader.Read())
            {
                this.resultadosCategorias = new ResultadosCategorias();
                this.resultadosCategorias.id = reader.GetInt32(reader.GetOrdinal("id"));
                this.resultadosCategorias.pedidos= pedidosDao.asignarId(reader.GetInt32(reader.GetOrdinal("pedidos_id")));
                this.resultadosCategorias.examenes = examenesDao.asignarId(reader.GetInt64(reader.GetOrdinal("examenes_id")));
                this.resultadosCategorias.elementosCategoria = elementosCategoriaDao.asignarId(reader.GetInt64(reader.GetOrdinal("elementos_categoria_id")));
                this.resultadosCategorias.resultado = reader.GetString(reader.GetOrdinal("resultado"));
                reader.Close();
                return true;
            }
            return false;

        }
    }
}
